/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ipartek.formacion.gestformwww.controlador;

import com.ipartek.formacion.gestformwww.modelo.ModeloContacto;
import com.ipartek.formacion.gestformwww.modelo.beans.Contacto;
import com.ipartek.formacion.gestformwww.modelo.beans.FiltroContacto;
import com.ipartek.formacion.gestformwww.modelo.beans.excepciones.GestorFormacionExcepcion;
import java.util.ArrayList;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Curso
 */
public class VisualizarListaContactosAccion implements Accion {

   public AccionRouter ejecuta(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response) {

        HttpSession sesion;
        sesion = request.getSession();
        AccionRouter router=new AccionRouter("principal");
        AccionServlet as=(AccionServlet) servlet;
        FiltroContacto filtro;

        ModeloContacto modelo = (ModeloContacto) servlet.getServletContext().getAttribute("ModeloContacto");
        ArrayList<Contacto> arrayContactos = new ArrayList<Contacto>();
        ResourceBundle bundle = (ResourceBundle) servlet.getServletContext().getAttribute("acciones-mapeo");
        if (sesion.getAttribute("filtrocontacto") != null) {
            filtro = (FiltroContacto) sesion.getAttribute("filtrocontacto");
        } else {
            filtro = new FiltroContacto(bundle);
        }

        if (sesion.getAttribute("usuario") == null) {
            router = new AccionRouter("inicio", false);
        } else {
            router = new AccionRouter("principal");
            try {

              arrayContactos = modelo.listarContacto(filtro);

                request.setAttribute("contactos", arrayContactos);
                request.setAttribute("contenido-candidato", "contactos-candidato");
                filtro.setColumnaFiltrar(request.getParameter("filtroColumnaCont"));

                filtro.setOrden(request.getParameter("filtroOrdenCont"));

                sesion.setAttribute("filtrocontacto", filtro);

            } catch (GestorFormacionExcepcion ex) {
                Logger.getLogger(VisualizarContactoAccion.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return router;
    }
}
